//
// C++ Interface: SimpleMaxScoreDiscardStrategy
//
// Description:
//
//
// Author: Kristina Bennett <kls93@caip.rutgers.edu>, (C) 2008
//
// Copyright: See COPYING file that comes with this distribution
//
//

#ifndef _MAXSCOREDISCARDSTRATEGY_H
#define _MAXSCOREDISCARDSTRATEGY_H

#include "DiscardStrategy.h"

class MaxScoreDiscardStrategy : public DiscardStrategy
{

	protected:
            
            int numTiedCards;
            
            virtual void setExecutionParameter(int, int) {}
		
	public:
            
            MaxScoreDiscardStrategy() 
            : DiscardStrategy(string("MaxScoreDiscardStrategy"), 0), numTiedCards(1) {}

            MaxScoreDiscardStrategy (int myWeight)
                            : DiscardStrategy (myWeight), numTiedCards(1)
            { }
                
            virtual int getDecisionCertainty();

            virtual Strategy* getActiveInstance(int inst_weight) {
                return dynamic_cast<Strategy*>(new MaxScoreDiscardStrategy(inst_weight));
            }

            virtual void opponentMove ( int opponent, const Move& move ) {}
            virtual int pickDiscard (CCardStack*, bool, const GameState* );
                
};

#endif  /* _MAXSCOREDISCARDSTRATEGY_H */

